package cn.xy.third.alipay.bean;

import lombok.Data;
import lombok.experimental.Accessors;

import java.math.BigDecimal;

/**
 * @author jianzheng
 */
@Data
public class AliPayTransferToAccountRequestParam {

    /**
     * 商家侧唯一订单号
     */
    private String out_biz_no;

    /**
     * 订单总金额
     */
    private BigDecimal trans_amount;

    /**
     * 销售产品码。单笔无密转账固定为 TRANS_ACCOUNT_NO_PWD。
     */
    private String product_code;

    /**
     * 业务场景。单笔无密转账固定为 DIRECT_TRANSFER。
     */
    private String biz_scene;

    /**
     * 转账业务的标题，用于在支付宝用户的账单里显示。
     */
    private String order_title;

    /**
     * 业务备注
     */
    private String remark;

    /**
     * 转账业务的标题，用于在支付宝用户的账单里显示。
     */
    private String business_params;

    /**
     * 收款人信息
     */
    private PayeeInfo payee_info;

    @Data
    @Accessors(chain = true)
    public static class PayeeInfo {


        /**
         * 参与方的标识类型，目前支持如下枚举：
         *
         * ALIPAY_USER_ID：支付宝会员的用户 ID，可通过 获取会员信息 能力获取。
         * ALIPAY_LOGON_ID：支付宝登录号，支持邮箱和手机号格式。
         */
        String identity_type;

        /**
         * 参与方的标识ID / 支付宝账号
         *
         * 当 identity_type=ALIPAY_USER_ID 时，填写支付宝用户 UID。
         * 当 identity_type=ALIPAY_LOGON_ID 时，填写支付宝登录号。
         */
        String identity;

        /**
         * 参与方真实姓名
         */
        String name;

    }

    @Data
    @Accessors(chain = true)
    public static class BusinessParams {

        /**
         * 付款方显示名称
         */
        String payer_show_name;

    }
}
